/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package com.isd.ventas.rn;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
import javax.ejb.EJB;
import javax.ejb.Stateless;
import javax.ejb.LocalBean;
import com.isd.venta.dao.CuentaCorrienteDAO;
import com.isd.venta.vista.ItemHistoricoCuentaCorriente;
import com.isd.venta.vista.ItemPendienteCuentaCorriente;
import java.util.Calendar;

/**
 *
 * @author Claudio
 */
@Stateless
@LocalBean
public class CuentaCorrienteRN {

    @EJB private CuentaCorrienteDAO cuentaCorrienteDAO;

    public List<ItemHistoricoCuentaCorriente> getHistorialEntreFechas(String nroCuenta, Date fDesde, Date fHasta){

        return cuentaCorrienteDAO.getAplicacionesEntreFechas(nroCuenta, fDesde, fHasta);

    }

    public List<ItemPendienteCuentaCorriente> getDebitosPendientes(String nroCuenta){

        return cuentaCorrienteDAO.getPendientesByNroCuenta(nroCuenta, "D");
    }

    public List<ItemPendienteCuentaCorriente> getCreditosPendientes(String nroCuenta){

        return cuentaCorrienteDAO.getPendientesByNroCuenta(nroCuenta, "H");
    }

    public BigDecimal getSaldoActual(String nrocta) {

        BigDecimal s = cuentaCorrienteDAO.getSaldoAFecha(nrocta, new Date());
        if(s==null) s = BigDecimal.ZERO;
        return s;
        
    }

    public ItemHistoricoCuentaCorriente getSaldoAnterior(String nrocta, Date fDesde) {

        ItemHistoricoCuentaCorriente itemSA = new ItemHistoricoCuentaCorriente();
        itemSA.setCodfor("SA");
        itemSA.setCuotas((short) 0 );
        itemSA.setNrocta(nrocta);
        itemSA.setFchmov(fDesde);
        itemSA.setSucurs("0000");

        Calendar calendar = Calendar.getInstance();
        calendar.setTime(fDesde); // Configuramos la fecha que se recibe
        calendar.add(Calendar.DAY_OF_YEAR, -1);  // numero de días a añadir o restar
        
        BigDecimal saldo = cuentaCorrienteDAO.getSaldoAFecha(nrocta,calendar.getTime());
        
        if(saldo==null) saldo = BigDecimal.ZERO;
        itemSA.setSaldo(saldo);

        return itemSA;
    }
    
    // Add business logic below. (Right-click in editor and choose
    // "Insert Code > Add Business Method")
 
}
